package q3;

import q1.Pessoa;
import q2.InterfaceRepositorio;
import q2.RepositorioPessoas;
import utils.Constants;

public class CadastroPessoas implements InterfaceCadastro {

	private InterfaceRepositorio rep;

	public CadastroPessoas() {
		rep = new RepositorioPessoas();
	}

	@Override
	public void adicionar(Object o) throws ObjetoExistenteException {
		if (rep.verificar(o)) {
			ObjetoExistenteException oee = new ObjetoExistenteException(Constants.OBJETO_PESSOA);
			throw oee;
		}

		rep.adicionar(o);
	}

	@Override
	public void remover(Object o) throws ObjetoNaoExistenteException {
		if (!rep.verificar(o)) {
			ObjetoNaoExistenteException onee = new ObjetoNaoExistenteException(Constants.OBJETO_PESSOA);
			throw onee;
		}

		rep.remover(o);
	}

	@Override
	public Object buscar(String key) throws ObjetoNaoExistenteException {
		Pessoa p = (Pessoa) rep.buscar(key);
		if (p == null) {
			ObjetoNaoExistenteException onee = new ObjetoNaoExistenteException(Constants.OBJETO_PESSOA);
			throw onee;
		}
		return p;
	}

	@Override
	public void atualizar(Object o) throws ObjetoNaoExistenteException {
		if (!rep.verificar(o)) {
			ObjetoNaoExistenteException onee = new ObjetoNaoExistenteException(Constants.OBJETO_PESSOA);
			throw onee;
		}
		rep.atualizar(o);
	}

}